package com.yhh.college_information_platform.vo;

import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 资料视图对象
 *
 * @author yhh
 * @date 2025-10-25
 */
@Data
public class ResourceVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 资料ID
     */
    private Long id;

    /**
     * 资料标题
     */
    private String title;

    /**
     * 资料描述
     */
    private String description;

    /**
     * 分类ID
     */
    private Long categoryId;

    /**
     * 分类名称
     */
    private String categoryName;

    /**
     * 标签列表
     */
    private List<String> tags;

    /**
     * 文件名
     */
    private String fileName;

    /**
     * 文件大小（字节）
     */
    private Long fileSize;

    /**
     * 文件大小（格式化）
     */
    private String fileSizeFormat;

    /**
     * 文件类型
     */
    private String fileType;

    /**
     * 文件URL
     */
    private String fileUrl;

    /**
     * 封面图URL
     */
    private String coverUrl;

    /**
     * 上传者ID
     */
    private Long uploaderId;

    /**
     * 上传者昵称
     */
    private String uploaderName;

    /**
     * 上传者头像
     */
    private String uploaderAvatar;

    /**
     * 审核状态
     */
    private Integer status;

    /**
     * 审核备注
     */
    private String auditRemark;

    /**
     * 下载次数
     */
    private Integer downloadCount;

    /**
     * 点赞次数
     */
    private Integer likeCount;

    /**
     * 收藏次数
     */
    private Integer favoriteCount;

    /**
     * 浏览次数
     */
    private Integer viewCount;

    /**
     * 是否已点赞
     */
    private Boolean isLiked;

    /**
     * 是否已收藏
     */
    private Boolean isFavorited;

    /**
     * 是否支持预览
     */
    private Boolean supportPreview;

    /**
     * 预览类型（pdf/docx/xlsx/txt/image/unsupported）
     */
    private String previewType;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}

